package cn.iocoder.yudao.module.station.controller.admin.cylinder.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 钢瓶档案分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CylinderPageReqVO extends PageParam {

    @Schema(description = "钢瓶编码")
    private String cylinderCode;

    @Schema(description = "载体编码")
    private String chipCode;

    @Schema(description = "溯源二维码")
    private String qrcode;

    @Schema(description = "钢瓶类型编码")
    private Long cylinderTypeCode;

    @Schema(description = "钢瓶规格编码")
    private Long cylinderModelCode;

    @Schema(description = "钢瓶规格")
    private String gasCylinderSpeci;

    @Schema(description = "钢瓶制造日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] makeTime;

    @Schema(description = "设计使用寿命（年）")
    private Integer serviceLife;

    @Schema(description = "强检周期")
    private Integer checkPeriod;

    @Schema(description = "设计报废时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] designScrapTime;

    @Schema(description = "钢瓶皮重（KG）")
    private Double tareWeight;

    @Schema(description = "最大充装量（KG）")
    private Double maxFillWeight;

    @Schema(description = "使用登记状态", example = "1")
    private Integer useRegisterStatus;

    @Schema(description = "使用登记证编码")
    private String useRegisterCode;

    @Schema(description = "首次充装时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] fillFirstTime;

    @Schema(description = "最近一次充装部门编码")
    private String recentFillDeptCode;

    @Schema(description = "最近一次充装时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] recentFillTime;

    @Schema(description = "充装次数")
    private Integer fillAmount;

    @Schema(description = "最近一次检测机构编码")
    private Long recentCheckStationCode;

    @Schema(description = "最近一次检测机构名称", example = "芋艿")
    private String recentCheckStationName;

    @Schema(description = "最近一次检测时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] recentCheckTime;

    @Schema(description = "检测批次号")
    private String recentCheckBatchCode;

    @Schema(description = "最近一次操作时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] recentOperateTime;

    @Schema(description = "下次检验时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] nextCheckTime;

    @Schema(description = "钢瓶图片")
    private String cylinderPics;

    @Schema(description = "钢瓶状态", example = "2")
    private Integer cylinderStatus;

    @Schema(description = "迁移解绑状态")
    private Integer transferFlag;

    @Schema(description = "备注", example = "随便")
    private String remark;

    @Schema(description = "当前钢瓶流传节点", example = "2")
    private Integer lastNodeType;

    @Schema(description = "最后操作时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] lastFlowTime;

    @Schema(description = "最后位置")
    private String lastPosition;

    @Schema(description = "钢瓶状态", example = "2")
    private Integer weightStatus;

    @Schema(description = "钢瓶规格编码")
    private Integer gasCylinderSpeciNum;

    @Schema(description = "停用id", example = "20662")
    private Long stopId;

    @Schema(description = "投用状态", example = "2")
    private Long useStatus;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "部门id", example = "11255")
    private Long stationId;

    @Schema(description = "二维码地址")
    private String barcode;

    @Schema(description = "钢瓶制造厂家编码")
    private Long factoryCode;

    @Schema(description = "钢瓶制造厂家名称", example = "李四")
    private String factoryName;

    @Schema(description = "充装介质编码")
    private Long mediumCode;

    @Schema(description = "充装介质名称", example = "李四")
    private String mediumName;

}
